package com.sob.bountyhunter.entidades.actores;

import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.geom.Rectangle;

import com.sob.bountyhunter.Art;
import com.sob.bountyhunter.Camara;
import com.sob.bountyhunter.Mapa;
import com.sob.bountyhunter.condiciones.CondicionLento;
import com.sob.bountyhunter.entidades.Entidad;
import com.sob.bountyhunter.hud.VentanaLoot;
import com.sob.bountyhunter.inventario.Arma;
import com.sob.bountyhunter.inventario.Inventario;

public class Contenedor extends Actor{

	public boolean isOpen = false;	
	public VentanaLoot ventana;
	
	public Contenedor(VentanaLoot v) throws SlickException {
		super();
		// TODO Auto-generated constructor stub
		dmgRes=5;
		inventario=new Inventario();
		sprite=Art.objetos32x32.getSubImage(0, 0);
		Arma arma=new Arma("Espada corta", 1, false);
		arma.setModelo(0);
		arma.setLongitud(16);
		arma.setVelocidad(250);
		Arma arma2=new Arma("Espada larga", 2, false);
		arma2.setModelo(1);
		arma2.setLongitud(25);
		arma2.setVelocidad(500);
		this.inventario.addObjeto(arma);
		this.inventario.addObjeto(arma2);
		ventana=v;
	}
	
	public void update(GameContainer gameContainer, int deltaTime, Mapa map) {
		super.update(gameContainer, deltaTime, map);
		if(ventana.getPropietario()==this){
			//ventana.setMostrar(isOpen);

			/*
			if(inventario.getListaObjetos().size()==0){
				isOpen=true;
			}else{
				isOpen=ventana.getMostrar();
			}*/
			

			if(isOpen){
				ventana.x=(this.x+this.sprite.getWidth()-Camara.xOff)*Camara.scale;
				ventana.y=(this.y-Camara.yOff)*Camara.scale;
				
				//Busca un jugador
				Jugador j=null;
				for(Entidad e: map.entidades){
					try{ 
						j=(Jugador)e;
						break; //Cuando lo encuentre para
					} 
					catch(Exception ex) {
						continue;
					}
				}
				if(j!=null){
					if(j.getDistTiles(this)>2){
						ventana.setMostrar(false);
					}
				}
			}
			
			isOpen=ventana.getMostrar();
		}
	}
	
	public void render(GameContainer gameContainer, Graphics graphics, int xOff, int yOff){
		if(isOpen){
			sprite=Art.objetos32x32.getSubImage(1, 0);

		}else{
			sprite=Art.objetos32x32.getSubImage(0, 0);
		}
		super.render(gameContainer,graphics,xOff, yOff);
		//graphics.setColor(Color.red);
		//graphics.drawRect(x+xOff, y+yOff, 32, 32);
	}

	@Override
	public void usar(Actor e, Mapa map){
		//super.usar(e, map);
		if(!isOpen){
			//float l=e.hojaPersonaje.getAtributo(HojaPersonaje.VIDA).getBase();
			//e.hojaPersonaje.getAtributo(HojaPersonaje.VIDA).setBase(l+1);
			//CondicionLento cL=new CondicionLento(e, 50);
			//CondicionVeneno cV=new CondicionVeneno(e, 1);
			//CondicionContagio cC=new CondicionContagio(e);
			//CondicionFortaleza cF=new CondicionFortaleza(e);
			
			//e.hojaPersonaje.addCondicion(cL);
			//e.hojaPersonaje.addCondicion(cV);
			//e.hojaPersonaje.addCondicion(cC);
			//e.hojaPersonaje.addCondicion(cF);
			
			
			/*
			Arma arma=new Arma("Espada corta", 1, false);
			Arma arma2=new Arma("Espada larga", 2, false);
			e.inventario.addObjeto(arma);
			e.inventario.addObjeto(arma2);
			e.inventario.equipaObjeto(arma);
			*/

			ventana.x=(this.x+this.sprite.getWidth()-Camara.xOff)*Camara.scale;
			ventana.y=(this.y-Camara.yOff)*Camara.scale;
			ventana.setPropietario(this);
			ventana.setMostrar(true);
			ventana.setElquerecibe(e);
			isOpen=true;
		}
	}
	
	/*
	@Override
	public Rectangle getCajaColision()
	{
		Rectangle r=null;
		
		r=new Rectangle((int) (x+cx),(int) (y+cy), 32, 32);
		
		return r;
	}*/
	
	public Rectangle getCajaColision(float px, float py)
	{
		super.getCajaColision(px, py);
		
		Rectangle r=null;
		
		r=new Rectangle((int) (px+cx), (int) (py+cy), 32, 32);
		
		return r;
	}
}
